package org.yzhzc.common.core.domain;

import lombok.Data;
import org.yzhzc.common.core.enums.ResultCode;

import java.util.ArrayList;
import java.util.List;

/**
 * 表格分页数据对象
 */
@Data
public class TableDataInfo {

    private int code;   // 消息状态码
    private long total;  // 总记录数
    private String msg; // 消息内容
    private List<?> rows;   // 列表数据


    /**
     * 静态方法 - 返回一个空数据的分页对象
     * 场景：未查出任何数据时调用
     * @return 表格分页数据对象
     */
    public static TableDataInfo empty() {
        TableDataInfo rspData = new TableDataInfo();
        rspData.setCode(ResultCode.SUCCESS.getCode());  // 设置成功状态码
        rspData.setRows(new ArrayList<>());  // 初始化空列表
        rspData.setMsg(ResultCode.SUCCESS.getMsg());  // 设置成功消息内容
        rspData.setTotal(0);  // 设置总记录数为0
        return rspData;
    }

    /**
     * 静态方法 - 返回一个带有数据的分页对象
     * 场景：查出数据时调用
     * @param list 查询出的数据列表
     * @param total 查询出的数据总数
     * @return 表格分页数据对象
     */
    public static TableDataInfo success(List<?> list, long total) {
        TableDataInfo rspData = new TableDataInfo();
        rspData.setCode(ResultCode.SUCCESS.getCode());  // 设置成功状态码
        rspData.setRows(list);  // 设置列表数据
        rspData.setMsg(ResultCode.SUCCESS.getMsg());  // 设置成功消息内容
        rspData.setTotal(total);  // 设置总记录数
        return rspData;
    }
}
